The invention relates to a data display system and in particular to a display management system which can (on a single display device) display data provided by more than one task without itself being dependent, on the way that the tasks (applications) are dispatched or, on the particular tasking system being used or, on the operator dialogue for initiating applications.
Windowing systems allow many tasks to be performed concurrently with the data for each task displayed in separate areas on the display. Depending on the windowing system, various features may be supported such as the ability to have overlapping windows, the use of window frames to indicate the boundaries of the window areas, as well as window manipulation functions.
Windowing is the generic name given to the technique of subdividing a display screen into (usually) rectangular areas (known as windows) so that different applications (tasks) can be concurrently executing. Each application usually displays data in one of the windows but on some such systems an application can display in more than one window.
To enable the operator to interact with the various applications the windowing system may provide facilities for manipulating the windows. Commonly provided functions include the ability to move a window, reduce or increase its size, scroll a window, in each case the object being to allow the operator to view on the limited space available on the screen the data from the various applications of most relevance to him.
On some systems the application refreshes the data whenever the window changes or is scrolled. On other systems the application does not display its data in the window itself but in a storage area of a fixed size (its presentation space) and the window system displays parts of this data in the applications window. This has the advantage that the application does not have to be involved in the windowing operations such as scrolling, which can be performed by the windowing system addressing different parts of the presentation space. One such system is described in EP-A-0 147 542.
Apart from window manipulation facilities, a windowing system can provide facilities to interact with the operator to define windows and start application control programs to use them. Having started an application it must be possible to suspend it so that the operator can interact with a different application and in general to suspend and resume any application for which the operator chooses to provide input.
The interaction with the operator so that applications can be started is itself a display interaction which can use any of the input-output features available on the display. Text, graphics and icons are examples of possible output features, while a mouse or a stylus may be used as input media (for instance, a mouse may be used to move a cross-hair cursor to point to one of a group of icons representing appreciations).
The windowing system needs some information about the applications so that during execution they can be provided with the resources needed (storage, files, parameters etc). It also needs to have enough information on the applications to avoid conflicts or deadly embraces as one application is suspended and another resumed because, in general, the appreciation will be independent of each other and therefore have taken no steps to avoid such conflicts.
Note also that the applications may have been developed in different languages or command systems which have inherently different characteristics and the flow of control between such applications may only be possible if the windowing system is aware of all the idiosyncrasies involved.
On some systems the user has to provide a profile for each application to the windowing system to overcome such problems. However, apart from creating problems for the user, it is not always possible to describe the resource requirements in this way and inevitably the window system imposes restrictions particularly in its ability to handle a new application type which is introduced after the windowing system was developed. It will be seen that some aspects of the windowing system are of general applicability whereas some are specific to the application environment, the operating system features available and the input-output features available on the display. It will also be seen that the way the windowing system interacts with the operator via these input-output features is itself analogous to the way the applications themselves interact with the operator and indeed that is desirable for the operator to be able to use common interactive mechanisms whether interactive with the application or with the windowing system itself.
Typically, a windowing system would include functions to:
1. Interact with the operator (using menus on the display) to allow applications to be initiated. PA0 2. Create `tasks` to control the processing of the applications in such a way that applications can be suspended or resumed according to whether operator input is available for them. PA0 3. Combine data from each application and build a display representation that shows many `windows` into the various applications onto a single display screen. PA0 4. Provide interactive functions to allow the operator to select the application to be resumed and to control how the data is displayed (for instance by moving a window or reducing its size). PA0 5. Provide means by which the different window areas are differentiated (for instance, by surrounding windows with `frames` or by use of different background colors). PA0 6. Resolve conflicts between resource requirements of the applications (for instance, by allocating resources according to viewing priority).
The problem solved by the invention is how functions (1) and (2) can be separated from functions (3)-(6) and how the problems that arise from this separation can be overcome.